perm filename BB.LSP[206,LSP] blob
sn#254631 filedate 1976-12-09 generic text, type T, neo UTF8
(DEFPROP BBFCNS
(BBFCNS ALPHABETIC
ALPHANUM
BBARGS
BBCOND
BBELSE
BBEX
BBEXL
BBFUN
BBFUNCTION
BBFUNDEF
BBINIT
BBLAMBDA
BBLAMBDAF
BBLIST
BBLISTF
BBLPT
BBPPROP
BBPPROPS
BBPROG
BBPROGA
BBPROPS
BBPUB
BBQUOTE
BBQUOTEL
BBSELECTA
BBSELECTQ
BBTTY
BBTTYLPT
BBVALDEF
BBVARS
BBXGP
BBXGPPUB
BINOPB
BRACKET
CARLIST
CHARW
CHVAL
CLEARBB
CLEARBITS
CLEARFONTS
FIN
FONT
FSIZE
HIN
INOPB
INOPBB
INPUNA
LABL
LCASE
LINL
MAK
MAXF
NEWLINE
PARENS
PRA
PREH
PREX
PRF
PRINDEC
PRINFONTFILE
PRINTC
PRINX
PRINXX
PRT
PSIZE
READFONT
SCANPOP
SCANPUSH
SCANTABLE
SETBITS
SETCARLIST
SETSCANTABLE
SETSLASHES
SETUPFONT
SIMPLEPRINT
SIN
SLASHIFY
SMALL
SMALLNAM
SUMLEN
TTYMSG
ULINE
UNOP
VALIDPUBCODES
XA
XBLANK
XBOLD
XCONST
XGP
XGPLINL
XSPACE
XSYM
XVAR)
VALUE)
(DEFPROP ALPHABETIC
(LAMBDA (V) (AND (GREATERP V 100) (LESSP V 133)))
EXPR)
(DEFPROP ALPHANUM
(LAMBDA(U)
(OR (NULL U)
(AND (OR (NUMBERP (CAR U)) (ALPHABETIC (CHRVAL (CAR U))))
(ALPHANUM (CDR U)))))
EXPR)
(DEFPROP BBARGS
(LAMBDA (U) (MAPCAR (FUNCTION BBEX) U))
EXPR)
(DEFPROP BBCOND
(LAMBDA(U)
(CONS
12
(COND
((NULL U) (MAK (QUOTE X) (LIST (XVAR NIL))))
(T
(MAK
(QUOTE E)
(CONS
(MAK
(QUOTE T)
(LIST
(MAK
(QUOTE B)
(LIST (MAK (QUOTE X) (LIST (XBOLD (QUOTE if)) (XBLANK)))
(BRACKET (BBEX (CAAR U)) 12)))
(MAK
(QUOTE B)
(LIST
(MAK (QUOTE X)
(LIST (XBLANK) (XBOLD (QUOTE then)) (XBLANK)))
(BRACKET (BBEXL (CDAR U)) 12)))))
(BBELSE (CDR U))))))))
EXPR)
(DEFPROP BBELSE
(LAMBDA(U)
(COND
((NULL U) NIL)
((EQ (CAAR U) (QUOTE T))
(LIST
(MAK (QUOTE B)
(LIST
(MAK (QUOTE X)
(LIST (XBLANK) (XBOLD (QUOTE else)) (XBLANK)))
(BRACKET (BBEXL (CDAR U)) 5)))))
(T
(CONS
(MAK (QUOTE T)
(LIST
(MAK (QUOTE B)
(LIST
(MAK (QUOTE X)
(LIST (XBLANK)
(XBOLD (QUOTE else/ if))
(XBLANK)))
(BRACKET (BBEX (CAAR U)) 12)))
(MAK (QUOTE B)
(LIST
(MAK (QUOTE X)
(LIST (XBLANK) (XBOLD (QUOTE then)) (XBLANK)))
(BRACKET (BBEXL (CDAR U)) 12)))))
(BBELSE (CDR U))))))
EXPR)
(DEFPROP BBEX
(LAMBDA(E)
(COND ((ATOM E) (CONS 144 (MAK (QUOTE X) (LIST (XVAR E)))))
((ATOM (CAR E))
((LAMBDA(U)
(COND ((NULL U) (BBFUN (CAR E) (BBARGS (CDR E))))
((NULL (CDR U)) ((CAR U) (CDR E)))
(T ((CAR U) (CDR E) (CDR U)))))
(GET (CAR E) (QUOTE CARBB))))
((EQ (CAAR E) (QUOTE LAMBDA))
(BBLAMBDA (CDAR E) (BBARGS (CDR E))))
(T (BBFUN (QUOTE APPLY$) (BBARGS E)))))
EXPR)
(DEFPROP BBEXL
(LAMBDA(U)
(COND ((NULL U) (BBEX (QUOTE ****)))
((NULL (CDR U)) (BBEX (CAR U)))
(T
(CONS 5
(MAK (QUOTE E)
(INPUNA
(MAK (QUOTE X) (LIST (XSYM (QUOTE /,/ ))))
(BBARGS U)))))))
EXPR)
(DEFPROP BBFUN
(LAMBDA(FN ARGS)
(CONS
132
(COND
((NULL ARGS)
(MAK (QUOTE X) (LIST (XVAR FN) (XSYM (QUOTE /[/])))))
((NULL (CDR ARGS))
(MAK
(QUOTE F)
(LIST (MAK (QUOTE X) (LIST (XVAR FN) (XBLANK))) (CDAR ARGS))))
(T
(MAK
(QUOTE F)
(LIST
(MAK (QUOTE X) (LIST (XVAR FN) (XSYM (QUOTE /[))))
(MAK
(QUOTE A)
(LIST
(MAK
(QUOTE E)
(INPUNA (MAK (QUOTE X) (LIST (XSYM (QUOTE /,/ )))) ARGS))
(MAK (QUOTE X) (LIST (XSYM (QUOTE /]))))))))))))
EXPR)
(DEFPROP BBFUNCTION
(LAMBDA (E) (BBEX (CAR E)))
EXPR)
(DEFPROP BBFUNDEF
(LAMBDA(NAME ARGS BODY PROP)
(MAK (QUOTE F)
(LIST (MAK (QUOTE A)
(LIST (CDR (BBFUN NAME (BBARGS ARGS)))
(MAK (QUOTE X)
(COND ((EQ PROP (QUOTE EXPR))
(LIST (XBLANK)
(XSYM (QUOTE ←/ ))))
(T
(LIST (XBLANK)
(XSYM (QUOTE /())
(XCONST (QUOTE FEXPR))
(XSYM
(QUOTE /)/ ←/ ))))))))
(BRACKET (BBEXL BODY) 5))))
EXPR)
(DEFPROP BBINIT
(LAMBDA(L)
(COND
((OR (NULL (ERRSET BBNAME NIL)) (NULL BBNAME))
(NILL DSKIN)
(SETQ FONTARRAYS NIL)
(SETQ FONTSYMBOLS NIL)
(SETQ FONTPROPS NIL)
(SETQ CARBBLIST NIL)))
(SETQ BBNAME (CAR L))
(CLEARBB))
FEXPR)
(DEFPROP BBLAMBDA
(LAMBDA(U ARGS)
(CONS 144
(MAK (QUOTE T)
(LIST (PARENS (MAK (QUOTE X) (LIST (XSYM (QUOTE {))))
(MAK (QUOTE X) (LIST (XSYM (QUOTE }))))
ARGS)
(CDR (BBLAMBDAF U))))))
EXPR)
(DEFPROP BBLAMBDAF
(LAMBDA(U)
(CONS
144
(MAK (QUOTE F)
(LIST
(MAK (QUOTE B)
(LIST
(MAK (QUOTE X) (LIST (XSYM (QUOTE /[λ))))
(MAK (QUOTE A)
(LIST
(BBVARS (CAR U))
(MAK (QUOTE X) (LIST (XSYM (QUOTE /./ ))))))))
(MAK (QUOTE A)
(LIST (BRACKET (BBEXL (CDR U)) 5)
(MAK (QUOTE X) (LIST (XSYM (QUOTE /]))))))))))
EXPR)
(DEFPROP BBLIST
(BBLIST (CONS BINOPB 24 (BBSYM / ) (BBSYM /.) (BBSYM / ))
(APPEND BINOPB 12 (BBSYM / ) (BBSYM *) (BBSYM / ))
(COND BBCOND)
(QUOTE BBQUOTE)
(OR BINOPB 24 (BBSYM / ) (BBSYM ∨) (BBSYM / ))
(AND BINOPB 24 (BBSYM / ) (BBSYM ∧/ ))
(LIST BBLISTF)
(LAMBDA BBLAMBDAF)
(FUNCTION BBFUNCTION)
(PLUS BINOPB 40 (BBSYM / ) (BBSYM +) (BBSYM / ))
(GREATERP BINOPB 30 (BBSYM / ) (BBSYM >) (BBSYM / ))
(LESSP BINOPB 30 (BBSYM / ) (BBSYM <) (BBSYM / ))
(PROG BBPROG)
(NULL UNOP 132 (BBBOLD n/ ))
(MINUS UNOP 132 (BBSYM -))
(CAR UNOP 132 (BBBOLD a/ ))
(CDR UNOP 132 (BBBOLD d/ ))
(CADR UNOP 132 (BBBOLD ad/ ))
(CDAR UNOP 132 (BBBOLD da/ ))
(CDDR UNOP 132 (BBBOLD dd/ ))
(CAAR UNOP 132 (BBBOLD aa/ ))
(CAAAR UNOP 132 (BBBOLD aaa/ ))
(CAADR UNOP 132 (BBBOLD aad/ ))
(CADAR UNOP 132 (BBBOLD ada/ ))
(CADDR UNOP 132 (BBBOLD add/ ))
(CDAAR UNOP 132 (BBBOLD daa/ ))
(CDADR UNOP 132 (BBBOLD dad/ ))
(CDDAR UNOP 132 (BBBOLD dda/ ))
(CDDDR UNOP 132 (BBBOLD ddd/ ))
(CAAAAR UNOP 132 (BBBOLD aaaa/ ))
(CAAADR UNOP 132 (BBBOLD aaad/ ))
(CAADAR UNOP 132 (BBBOLD aada/ ))
(CAADDR UNOP 132 (BBBOLD aadd/ ))
(CADAAR UNOP 132 (BBBOLD adaa/ ))
(CADADR UNOP 132 (BBBOLD adad/ ))
(CADDAR UNOP 132 (BBBOLD adda/ ))
(CADDDR UNOP 132 (BBBOLD addd/ ))
(CDAAAR UNOP 132 (BBBOLD daaa/ ))
(CDAADR UNOP 132 (BBBOLD daad/ ))
(CDADAR UNOP 132 (BBBOLD dada/ ))
(CDADDR UNOP 132 (BBBOLD dadd/ ))
(CDDAAR UNOP 132 (BBBOLD ddaa/ ))
(CDDADR UNOP 132 (BBBOLD ddad/ ))
(CDDDAR UNOP 132 (BBBOLD ddda/ ))
(CDDDDR UNOP 132 (BBBOLD dddd/ ))
(ATOM UNOP 132 (BBBOLD at/ ))
(EQ BINOPB 30 (BBSYM / ) (BBBOLD eq/ ))
(MEMBER BINOPB 30 (BBSYM / ) (BBSYM ε/ ))
(NOT UNOP 132 (BBSYM ¬))
(DIFFERENCE BINOPB 40 (BBSYM / ) (BBSYM -/ ))
(SETQ BINOPB 20 (BBSYM / ) (BBSYM ←/ ))
(SELECTQ BBSELECTQ))
VALUE)
(DEFPROP BBLISTF
(LAMBDA(U)
(CONS 144
(PARENS (MAK (QUOTE X) (LIST (XSYM (QUOTE <))))
(MAK (QUOTE X) (LIST (XSYM (QUOTE >))))
(BBARGS U))))
EXPR)
(DEFPROP BBLPT
(LAMBDA (U) (SETQ LINL 160) (BBTTYLPT U))
EXPR)
(DEFPROP BBPPROP
(LAMBDA(ATM PROP V)
(COND ((NULL V) NIL)
(T (TTYMSG ATM)
(TERPRI)
(TERPRI)
(NEWLINE (COND (XGP 60) (T 3)))
(PREX (COND ((NULL PROP) (CDR (BBEX V)))
((EQ PROP (QUOTE VALUE))
(BBVALDEF ATM (CDR V)))
(T (BBFUNDEF ATM (CADR V) (CDDR V) PROP)))
0
0)
(TERPRI))))
EXPR)
(DEFPROP BBPPROPS
(LAMBDA(V)
(COND ((ATOM V)
(MAPC (FUNCTION (LAMBDA (X) (BBPPROP V X (GET V X))))
BBPROPS))
(T (BBPPROP NIL NIL V))))
EXPR)
(DEFPROP BBPROG
(LAMBDA(U)
(CONS 12
(MAK (QUOTE B)
(LIST (MAK (QUOTE X)
(LIST (XBOLD (QUOTE prog)) (XBLANK)))
(CONS 10000
(CONS (QUOTE E)
(CONS (BRACKET
(CONS 0 (BBVARS (CAR U)))
0)
(BBPROGA (CDR U)))))))))
EXPR)
(DEFPROP BBPROGA
(LAMBDA(U)
(COND ((NULL U) NIL)
((ATOM (CAR U))
(COND ((NULL (CDR U))
(LIST (MAK (QUOTE U) (LIST (LABL (CAR U))))))
(T
(CONS (MAK (QUOTE U)
(LIST (LABL (CAR U))
(CDR (BBEX (CADR U)))))
(BBPROGA (CDDR U))))))
(T (CONS (CDR (BBEX (CAR U))) (BBPROGA (CDR U))))))
EXPR)
(DEFPROP BBPROPS
(BBPROPS EXPR FEXPR)
VALUE)
(DEFPROP BBPUB
(LAMBDA(U)
(PROG NIL
(SETQ SELECTCHAR (QUOTE %))
(SETQ PUB T)
(SETSLASHES (QUOTE (∂ { % //)))
(PRINTC (QUOTE /.DEVICE/ XGP))
(MAPC (FUNCTION
(LAMBDA(W)
(PRINTC (QUOTE /.FONT/ ))
(PRINC (CAR W))
(PRINC (QUOTE / /"))
(PRINFONTFILE (CDDR W))
(PRINC (QUOTE /"))))
PUBFONTS)
(PRINTC (QUOTE /.EVENLEFTBORDER←ODDLEFTBORDER←1000))
(PRINTC (QUOTE /.PAGE/ FRAME/ 52/ HIGH/ 83/ WIDE;))
(PRINTC (QUOTE /.AREA/ TEXT/ LINES/ 4/ TO/ 50;))
(PRINTC (QUOTE /.TITLE/ AREA/ HEADING/ LINES/ 1/ TO/ 3;))
(PRINTC (QUOTE /.PLACE/ TEXT;))
(PRINTC (QUOTE /.EVERY/ HEADING/(/,/,{PAGE}/);))
(PRINTC (QUOTE /.BEGIN/ NOFILL))
(PRINTC (QUOTE /.VARIABLE/ CHW))
(PRINTC (QUOTE /.CHW/ ←/ CHARW))
(PRINTC (QUOTE /.TURN/ OFF/ /"βα#\←∞↑↓∪/"))
(PRINTC (QUOTE /.TURN/ ON/ /"∂{%/"))
(PRINTC (QUOTE /.TURN/ ON/ /"///"/ FOR/ /"α/"))
(PRINTC
(QUOTE
/.AT/ /"∂∂/(/"/ CH/ /"/)/"/ ⊂/ CHARW←CH}∂/(2/){CHARW←CHW/ ⊃→
)) (BBXGPPUB U)
(PRINTC (QUOTE /.END))
(SCANPUSH)))
EXPR)
(DEFPROP BBQUOTE
(LAMBDA(E)
(CONS
144
(COND
((ATOM (CAR E))
(MAK (QUOTE X)
(COND
((OR (NUMBERP (CAR E))
(AND (ALPHABETIC (CHRVAL (CAR E)))
(ALPHANUM (CDR (EXPLODEC (CAR E))))))
(LIST (XCONST (CAR E))))
((STRINGP (CAR E))
(COND
(PUB (LIST (XCONST (CAR E))))
(T
(LIST (XSYM (QUOTE /"))
(XCONST (CAR E))
(XSYM (QUOTE /"))))))
(T
(LIST (XBLANK)
(XSYM (QUOTE `))
(XCONST (CAR E))
(XSYM (QUOTE '/ )))))))
(T
(MAK (QUOTE B)
(LIST
(MAK (QUOTE X) (LIST (XSYM (QUOTE /())))
(MAK (QUOTE A)
(LIST
(MAK (QUOTE E) (BBQUOTEL (CAR E)))
(MAK (QUOTE X) (LIST (XSYM (QUOTE /)))))))))))))
EXPR)
(DEFPROP BBQUOTEL
(LAMBDA(E)
(COND ((NULL (CDR E)) (LIST (CDR (BBQUOTE E))))
((ATOM (CDR E))
(LIST (CDR (BBQUOTE E))
(MAK (QUOTE B)
(LIST (MAK (QUOTE X)
(LIST (XBLANK) (XSYM (QUOTE /./ ))))
(CDR (BBQUOTE (LIST (CDR E))))))))
(T
(CONS (MAK (QUOTE A)
(LIST (CDR (BBQUOTE E))
(MAK (QUOTE X) (LIST (XBLANK)))))
(BBQUOTEL (CDR E))))))
EXPR)
(DEFPROP BBSELECTA
(LAMBDA(U)
(COND
((NULL (CDR U)) (LIST (BBEX (CAR U))))
(T
(CONS
(CONS
0
(MAK (QUOTE B)
(LIST
(MAK (QUOTE A)
(LIST (CDR (BBQUOTE (CAR U)))
(MAK (QUOTE X) (LIST (XBLANK)))))
(BRACKET (BBEXL (CDAR U)) 5))))
(BBSELECTA (CDR U))))))
EXPR)
(DEFPROP BBSELECTQ
(LAMBDA(U)
(COND ((LESSP (LENGTH U) 3) (BBFUN (QUOTE SELECTQ) (BBARGS U)))
(T
(BBFUN (QUOTE SELECTQ)
(CONS (BBEX (CAR U)) (BBSELECTA (CDR U)))))))
EXPR)
(DEFPROP BBTTY
(LAMBDA (U) (SETQ LINL 105) (BBTTYLPT U))
EXPR)
(DEFPROP BBTTYLPT
(LAMBDA(U)
(LINELENGTH LINL)
(SETQ SINDENT SIN)
(SETQ FINDENT FIN)
(SETQ HINDENT HIN)
(SETQ FMAX MAXF)
(COND
(XGP
(MAPC (FUNCTION (LAMBDA (W) (REMPROP (CAR W) (CDR W))))
FONTPROPS)))
(SETQ XGP NIL)
(SETQ PUB NIL)
(MAPC (FUNCTION BBPPROPS) U)
(LINELENGTH 105)
NIL)
EXPR)
(DEFPROP BBVALDEF
(LAMBDA(NAME VAL)
(CDR (BBEX (LIST (QUOTE SETQ) NAME (LIST (QUOTE QUOTE) VAL)))))
EXPR)
(DEFPROP BBVARS
(LAMBDA(U)
(MAK (QUOTE E)
(INPUNA
(MAK (QUOTE X) (LIST (XSYM (QUOTE /,/ ))))
(MAPCAR
(FUNCTION
(LAMBDA (V) (CONS 144 (MAK (QUOTE X) (LIST (XVAR V))))))
U))))
EXPR)
(DEFPROP BBXGP
(LAMBDA(U)
(SETQ SELECTCHAR (MAKNAM (LIST (QUOTE //) (ASCII 177) (QUOTE ↓))))
(SETQ FONTSYMS
(LIST (QUOTE 1)
(QUOTE 2)
(QUOTE 3)
(QUOTE 4)
(QUOTE 5)
(QUOTE 6)
(QUOTE 7)
(QUOTE 8)
(QUOTE 9)
(QUOTE A)
(QUOTE B)
(QUOTE C)
(QUOTE D)
(QUOTE E)
(QUOTE F)))
(SETQ PUB NIL)
(BBXGPPUB U)
NIL)
EXPR)
(DEFPROP BBXGPPUB
(LAMBDA(U)
(SETQ LINL XGPLINL)
(LINELENGTH 10000)
(SETQ SINDENT (TIMES SIN CHARW))
(SETQ FINDENT (TIMES FIN CHARW))
(SETQ HINDENT (TIMES HIN CHARW))
(SETQ FMAX (TIMES MAXF CHARW))
(SETQ CURFONT NIL)
(COND
((NOT XGP)
(MAPC (FUNCTION (LAMBDA (W) (REMPROP (CAR W) (CDR W))))
FONTPROPS)))
(SETQ XGP T)
(MAPC (FUNCTION BBPPROPS) U)
(LINELENGTH 105))
EXPR)
(DEFPROP BINOPB
(LAMBDA(ARGS V)
(CONS (CAR V)
(MAK (QUOTE E)
(INOPB
(MAK (QUOTE X)
(MAPCAR
(FUNCTION (LAMBDA (W) (XA (CAR W) (CADR W))))
(CDR V)))
(BBARGS ARGS)
(CAR V)))))
EXPR)
(DEFPROP BRACKET
(LAMBDA(U PREC)
(COND ((NOT (GREATERP (CAR U) PREC))
(MAK (QUOTE B)
(LIST (MAK (QUOTE X) (LIST (XSYM (QUOTE /[))))
(MAK (QUOTE A)
(LIST (CDR U)
(MAK (QUOTE X)
(LIST (XSYM (QUOTE /])))))))))
(T (CDR U))))
EXPR)
(DEFPROP CARLIST
(LAMBDA (L) (SETCARLIST L))
FEXPR)
(DEFPROP CHARW
(CHARW . 20)
VALUE)
(DEFPROP CHVAL
(LAMBDA (Z) (COND ((NUMBERP Z) (PLUS Z 60)) (T (CHRVAL Z))))
EXPR)
(DEFPROP CLEARBB
(LAMBDA NIL
(CLEARFONTS)
(MAPC (FUNCTION (LAMBDA (W) (REMPROP (CAR W) (QUOTE CARBB))))
CARBBLIST)
(SETQ CARBBLIST NIL))
EXPR)
(DEFPROP CLEARBITS
(LAMBDA (N M) (BOOLE 2 M N))
EXPR)
(DEFPROP CLEARFONTS
(LAMBDA NIL
(SETQ XGP NIL)
(SETQ PUBFONTS NIL)
(SETQ FONTLIST NIL)
(SETQ LCFONTS NIL)
(SETQ XGPFONT 0)
(SETQ FREEFONTARRAYS FONTARRAYS)
(MAPC (FUNCTION (LAMBDA (V) (REMPROP V (QUOTE FONT)))) FONTSYMBOLS)
(SETQ FONTSYMBOLS NIL)
(MAPC (FUNCTION (LAMBDA (W) (REMPROP (CAR W) (CDR W)))) FONTPROPS)
(SETQ FONTPROPS NIL))
EXPR)
(DEFPROP FIN
(FIN . 2)
VALUE)
(DEFPROP FONT
(LAMBDA (L) (SETUPFONT (CAR L) (CADR L) (CDDR L)) (CAR L))
FEXPR)
(DEFPROP FSIZE
(LAMBDA(AT WIDTHS)
(COND (XGP (PSIZE (EXPLODEC AT) WIDTHS)) (T (FLATSIZEC AT))))
EXPR)
(DEFPROP HIN
(HIN . 2)
VALUE)
(DEFPROP INOPB
(LAMBDA(P U PREC)
(COND ((NULL U) NIL)
(T (CONS (BRACKET (CAR U) PREC) (INOPBB P (CDR U) PREC)))))
EXPR)
(DEFPROP INOPBB
(LAMBDA(P U PREC)
(COND ((NULL U) NIL)
(T
(CONS (MAK (QUOTE B) (LIST P (BRACKET (CAR U) PREC)))
(INOPBB P (CDR U) PREC)))))
EXPR)
(DEFPROP INPUNA
(LAMBDA(P U)
(COND ((NULL U) NIL)
((NULL (CDR U)) (NCONS (CDAR U)))
(T
(CONS (MAK (QUOTE A) (LIST (CDAR U) P))
(INPUNA P (CDR U))))))
EXPR)
(DEFPROP LABL
(LAMBDA (U) (MAK (QUOTE X) (LIST (XVAR U) (XBLANK))))
EXPR)
(DEFPROP LCASE
(LAMBDA(L)
(SETQ LCFONTS
(APPEND
LCFONTS
(MAPCAR
(FUNCTION
(LAMBDA(W)
(READLIST (APPEND (QUOTE (B B)) (EXPLODE W)))))
L)))
L)
FEXPR)
(DEFPROP LINL
(LINL . 105)
VALUE)
(DEFPROP MAK
(LAMBDA (A U) (CONS (SUMLEN U) (CONS A U)))
EXPR)
(DEFPROP MAXF
(MAXF . 10)
VALUE)
(DEFPROP NEWLINE
(LAMBDA(N)
(COND (PUB (TERPRI)
(SETQ IND N)
(SETQ POS IND)
(PRINC (QUOTE ∂∂))
(PRINDEC (LIST N)))
(XGP
(PROG NIL
(TERPRI)
(SETQ IND N)
(SETQ POS 0)
A (COND ((EQ POS IND) (RETURN NIL))
((LESSP (DIFFERENCE IND POS) 100)
(XSPACE (DIFFERENCE IND POS))
(SETQ POS IND)
(RETURN NIL))
(T (XSPACE 77)))
(SETQ POS (PLUS POS 77))
(GO A)))
(T
(PROG NIL
(TERPRI)
(SETQ IND N)
(SETQ POS 0)
A (COND ((EQ POS IND) (RETURN NIL)))
(PRINC (QUOTE / ))
(SETQ POS (ADD1 POS))
(GO A)))))
EXPR)
(DEFPROP PARENS
(LAMBDA(LEFT RIGHT ARGS)
(MAK (QUOTE B)
(LIST LEFT
(MAK (QUOTE A)
(LIST (MAK (QUOTE E)
(INPUNA
(MAK (QUOTE X)
(LIST (XSYM (QUOTE /,/ ))))
ARGS))
RIGHT)))))
EXPR)
(DEFPROP PRA
(LAMBDA(E IM R)
(PREX (CADDR E) IM (PLUS R (CAAR (CDDDR E))))
(PREX (CADDDR E) IM R))
EXPR)
(DEFPROP PREH
(LAMBDA(E IM R I2)
(PROG (IB IMM)
(SETQ IB (MAX I2 IM))
(SETQ IMM (PLUS IB SINDENT))
(SETQ E (CDDR E))
(COND ((NULL E) (RETURN NIL)))
A (PREX (CAR E) IMM (COND ((NULL (CDR E)) R) (T 0)))
(SETQ E (CDR E))
(COND ((NULL E) (RETURN NIL))
(T (ULINE IB (CAR E)) (GO A)))))
EXPR)
(DEFPROP PREX
(LAMBDA(E IM R)
(COND ((NOT (GREATERP (PLUS (CAR E) POS R) LINL)) (SIMPLEPRINT E))
(T
(SELECTQ (CADR E)
(E (PREH E IM R POS))
(H (PREH E IM R (PLUS POS HINDENT)))
(A (PRA E IM R))
((B U) (PRF E IM R LINL))
(F (PRF E IM R FMAX))
(T (PRT E IM R))
(PRINX E)))))
EXPR)
(DEFPROP PRF
(LAMBDA(E IM R M)
(COND ((OR (GREATERP (PLUS (CAADDR E) POS (MINUS IND)) M)
(GREATERP (PLUS (CAADDR E) POS) LINL))
(PROG (I)
(SETQ I (MAX IM (PLUS IND FINDENT)))
(PREX (CADDR E) (PLUS I SINDENT) 0)
(NEWLINE I)
(PREX (CADDDR E) I R)))
(T (PREX (CADDR E) 0 0) (PREX (CADDDR E) IM R))))
EXPR)
(DEFPROP PRINDEC
(LAMBDA(U)
(PROG (B P)
(SETQ B BASE)
(SETQ P *NOPOINT)
(SETQ BASE 12)
(SETQ *NOPOINT T)
(PRINC U)
(SETQ BASE B)
(SETQ *NOPOINT P)))
EXPR)
(DEFPROP PRINFONTFILE
(LAMBDA(FILE)
(PRINC (CAADR FILE))
(COND
((NOT (EQ (CDADR FILE) (QUOTE FNT)))
(PRINC (QUOTE /.))
(PRINC (CDADR FILE))))
(COND
((NOT (EQUAL (CAR FILE) (QUOTE (XGP SYS))))
(PRINC (QUOTE /[))
(PRINC (CAAR FILE))
(PRINC (QUOTE /,))
(PRINC (CADAR FILE))
(PRINC (QUOTE /])))))
EXPR)
(DEFPROP PRINTC
(LAMBDA (U) (TERPRI) (PRINC U))
EXPR)
(DEFPROP PRINX
(LAMBDA (E) (MAPC (FUNCTION PRINXX) (CDDR E)))
EXPR)
(DEFPROP PRINXX
(LAMBDA(E)
(COND ((AND (EQ POS IND) (EQ (CDDR E) (QUOTE / ))) NIL)
(T (COND (XGP (COND
((NOT (EQ CURFONT (CADR E)))
(SETQ CURFONT (CADR E))
(PRINC SELECTCHAR)
(PRINC CURFONT)))
(COND (PUB (PRIN1 (CDDR E)))
(T (PRINC (CDDR E)))))
(T (PRINC (CDDR E))))
(SETQ POS (PLUS POS (CAR E))))))
EXPR)
(DEFPROP PRT
(LAMBDA(E IM R)
((LAMBDA(I)
(COND ((NOT
(GREATERP (PLUS (CAADDR E) (CAADDR (CADDDR E)) POS)
LINL))
(PREX (CADDR E) 0 0)
(PREX (CADDR (CADDDR E)) 0 0)
(NEWLINE I)
(PREX (CADDDR (CADDDR E)) I R))
(T (PREX (CADDR E) (PLUS I SINDENT) 0)
(NEWLINE I)
(PREX (CADDDR E) (PLUS I SINDENT) R))))
(MAX IM (PLUS IND HINDENT))))
EXPR)
(DEFPROP PSIZE
(LAMBDA(U WIDTHS)
(COND ((NULL U) 0)
(T (PLUS (WIDTHS (CHVAL (CAR U))) (PSIZE (CDR U) WIDTHS)))))
EXPR)
(DEFPROP READFONT
(LAMBDA(FILE)
(PROG (A B)
(COND ((NULL FREEFONTARRAYS)
(SETQ A (GENSYM))
(EVAL (LIST (QUOTE ARRAY) A 22 200))
(SETQ FONTARRAYS (CONS A FONTARRAYS)))
(T (SETQ A (CAR FREEFONTARRAYS))
(SETQ FREEFONTARRAYS (CDR FREEFONTARRAYS))))
(EVAL (CONS (QUOTE INPUT) (CONS (QUOTE FCH) FILE)))
(INC (QUOTE FCH) NIL)
(SETQ B 0)
L1 (EVAL
(LIST (QUOTE STORE) (LIST A B) (LSH (MAKNUM (WORDIN)) -22)))
(SETQ B (ADD1 B))
(COND ((LESSP B 200) (GO L1)))
(INC NIL T)
(RETURN A)))
EXPR)
(DEFPROP SCANPOP
(LAMBDA NIL (SETSCANTABLE PROGSCAN))
EXPR)
(DEFPROP SCANPUSH
(LAMBDA NIL (SETSCANTABLE LISPSCAN))
EXPR)
(DEFPROP SCANTABLE
(LAMBDA NIL
(PROG (N TBL)
(SETQ N 200)
(SETQ TBL NIL)
L (SETQ N (SUB1 N))
(SETQ TBL (CONS (MODCHR N NIL) TBL))
(COND ((GREATERP N 0) (GO L)))
(RETURN TBL)))
EXPR)
(DEFPROP SETBITS
(LAMBDA (N M) (BOOLE 7 N M))
EXPR)
(DEFPROP SETCARLIST
(LAMBDA(U)
(SETQ CARBBLIST U)
(MAPC (FUNCTION
(LAMBDA (W) (PUTPROP (CAR W) (CDR W) (QUOTE CARBB))))
U))
EXPR)
(DEFPROP SETSCANTABLE
(LAMBDA(U)
(PROG (N)
(SETQ N 0)
L (MODCHR N (CAR U))
(SETQ N (ADD1 N))
(SETQ U (CDR U))
(COND (U (GO L)))))
EXPR)
(DEFPROP SETSLASHES
(LAMBDA(U)
(SETQ LISPSCAN (SCANTABLE))
(SLASHIFY (MAPCAR (FUNCTION CHRVAL) U))
(SETQ PROGSCAN (SCANTABLE))
(SETQ %SCANSETFLAG% (GET (QUOTE SCANPUSH) (QUOTE SUBR))))
EXPR)
(DEFPROP SETUPFONT
(LAMBDA(SYMBOL PUBCODE FILE)
(PROG (A B)
(SETQ SYMBOL
(READLIST (APPEND (QUOTE (B B)) (EXPLODE SYMBOL))))
(COND
((MEMBER SYMBOL FONTSYMBOLS)
(ERROR (QUOTE "FONT SYMBOL DEFINED TWICE")))
(T (SETQ FONTSYMBOLS (CONS SYMBOL FONTSYMBOLS))))
(COND
((NOT (NULL FILE))
(COND
((NULL (CDR FILE))
(SETQ FILE (CONS (QUOTE (XGP SYS)) FILE))))
(COND
((ATOM (CADR FILE))
(SETQ
FILE
(LIST (CAR FILE) (CONS (CADR FILE) (QUOTE FNT))))))))
(COND
((AND (NUMBERP PUBCODE)
(LESSP PUBCODE 12)
(GREATERP PUBCODE 0))
(SETQ PUBCODE (INTERN (ASCII (PLUS PUBCODE 60))))))
(COND
((NOT (MEMBER PUBCODE VALIDPUBCODES))
(ERROR (QUOTE "INVALID PUB CODE")))
((SETQ A (ASSOC PUBCODE PUBFONTS))
(COND
((OR (NULL FILE) (EQUAL FILE (CDDR A)))
(PUTPROP
SYMBOL
(CONS (CDR (ASSOC# (CDDR A) FONTLIST))
(CONS PUBCODE (CADR A)))
(QUOTE FONT)))
(T (PRINT (CDDR A))
(PRINT FILE)
(ERROR "TWO FONT FILES FOR SAME PUBCODE"))))
((NULL FILE)
(ERROR (QUOTE "NO FILE SPECIFIED WHEN REQUIRED")))
(T (SETQ A (ASSOC# FILE FONTLIST))
(COND
((NULL A) (SETQ B (READFONT FILE))
(SETQ FONTLIST (CONS (CONS FILE B) FONTLIST)))
(T (SETQ B (CDR A))))
(SETQ
PUBFONTS
(CONS
(CONS
PUBCODE
(CONS (INTERN (ASCII (SETQ XGPFONT (ADD1 XGPFONT))))
FILE))
PUBFONTS))
(PUTPROP SYMBOL
(CONS B (CONS PUBCODE (CADAR PUBFONTS)))
(QUOTE FONT))))
(RETURN SYMBOL)))
EXPR)
(DEFPROP SIMPLEPRINT
(LAMBDA(E)
(COND ((EQ (CADR E) (QUOTE X)) (PRINX E))
(T (MAPC (FUNCTION SIMPLEPRINT) (CDDR E)))))
EXPR)
(DEFPROP SIN
(SIN . 1)
VALUE)
(DEFPROP SLASHIFY
(LAMBDA(U)
(PROG (N)
(SETQ N 0)
L (COND ((MEMBER N U)
(MODCHR N (CLEARBITS (MODCHR N NIL) -200000000000)))
(T (MODCHR N (SETBITS (MODCHR N NIL) -200000000000))))
(SETQ N (ADD1 N))
(COND ((LESSP N 200) (GO L)))))
EXPR)
(DEFPROP SMALL
(LAMBDA(C)
(COND ((NUMBERP C) C)
(T
((LAMBDA(X)
(COND ((AND (GREATERP X 100) (LESSP X 133))
(ASCII (PLUS X 40)))
(T C)))
(CHRVAL C)))))
EXPR)
(DEFPROP SMALLNAM
(LAMBDA (E) (MAKNAM (MAPCAR (FUNCTION SMALL) (EXPLODE E))))
EXPR)
(DEFPROP SUMLEN
(LAMBDA(U)
(COND ((NULL U) 0) (T (PLUS (CAAR U) (SUMLEN (CDR U))))))
EXPR)
(DEFPROP TTYMSG
(LAMBDA(MSG)
(PROG (CH) (SETQ CH (OUTC NIL NIL)) (PRINT MSG) (OUTC CH NIL)))
EXPR)
(DEFPROP ULINE
(LAMBDA(I E)
(COND ((EQ (CADR E) (QUOTE U))
(NEWLINE (MAX (DIFFERENCE I (CAADDR E)) 0)))
(T (NEWLINE I))))
EXPR)
(DEFPROP UNOP
(LAMBDA(ARGS V)
(CONS (CAR V)
(MAK (QUOTE F)
(LIST (MAK (QUOTE X)
(MAPCAR
(FUNCTION
(LAMBDA (W) (XA (CAR W) (CADR W))))
(CDR V)))
(BRACKET (BBEX (CAR ARGS)) 131)))))
EXPR)
(DEFPROP VALIDPUBCODES
(NIL /1 /2 /3 /4 /5 /6 /7 /8 /9 A B C D E F G)
VALUE)
(DEFPROP XA
(LAMBDA(SYMB AT)
(COND ((NUMBERP AT)
(PROG (A)
(SETQ A (GET SYMB (QUOTE FONT)))
(RETURN
(CONS (FSIZE AT (CAR A))
(CONS (COND (PUB (CADR A))
(XGP (CDDR A))
(T NIL))
AT)))))
((GET AT SYMB))
(T
(PROG (A ATX)
(SETQ A (GET SYMB (QUOTE FONT)))
(SETQ ATX
(COND ((MEMBER SYMB LCFONTS) (SMALLNAM AT))
(T AT)))
(SETQ FONTPROPS (CONS (CONS AT SYMB) FONTPROPS))
(RETURN
(PUTPROP
AT
(CONS (FSIZE ATX (CAR A))
(CONS (COND (PUB (CADR A))
(XGP (CDDR A))
(T NIL))
ATX))
SYMB))))))
EXPR)
(DEFPROP XBLANK
(LAMBDA NIL (XA (QUOTE BBSYM) (QUOTE / )))
EXPR)
(DEFPROP XBOLD
(LAMBDA (V) (XA (QUOTE BBBOLD) V))
EXPR)
(DEFPROP XCONST
(LAMBDA (V) (XA (QUOTE BBCONST) V))
EXPR)
(DEFPROP XGP
(XGP)
VALUE)
(DEFPROP XGPLINL
(XGPLINL . 2424)
VALUE)
(DEFPROP XSPACE
(LAMBDA(N)
(COND ((EQ N 0) NIL)
(T (PRINC (ASCII 177)) (PRINC (QUOTE α)) (PRINC (ASCII N)))))
EXPR)
(DEFPROP XSYM
(LAMBDA (V) (XA (QUOTE BBSYM) V))
EXPR)
(DEFPROP XVAR
(LAMBDA(E)
(COND ((OR (NULL E) (EQ E T) (NUMBERP E)) (XCONST E))
(T (XA (QUOTE BBVAR) E))))
EXPR)